#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h> /* superset of previous */
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/select.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <signal.h>
#include <poll.h>
#include "cJSON.h"
#include "shmem.h"
#include <errno.h>
#include "msg_queue_peer.h"
#include<stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <sys/select.h>
#include <pthread.h>
#include <sqlite3.h>
#include <errno.h>
#include <netinet/tcp.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
// //less
#include <unistd.h>
// inet_addr
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
// atoi
#include <stdlib.h>
// htons
#include <arpa/inet.h>
#include <errno.h>
#include <sys/stat.h>

#define BOOL int
// 共享内存结构体
// type 1:bool类型数据 2:int类型数据 3:float类型数据
union value
{
    BOOL b_val;
    int i_val;
    float f_val;
};

struct data
{
    long key;
    char name[32];
    int addr;
    int type;
    union value val;
};

struct device
{
    int stm32Num;
    int modbusNum;
};

// 消息队列结构体

struct message
{
    long datatype;
    int key;     // 设备唯一key
    int type;    // 数据类型
    union value val;
};


// 数据库结构体

struct sqldata
{
    long time;
    float val1;
    float val2;
    float val3;
};
void deserialization(struct device * p,struct data *Data);